<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>sql解决的问题</title>
</head>
<body>
<h1>忘记密码</h1>
<textarea name="" id="" cols="30" rows="10">
✅ 2. 以“跳过权限表”模式启动 MariaDB

```bash
mysqld_safe --skip-grant-tables &
```

✅ 3. 免密码登录 MariaDB

```bash
mysql -u root
```

✅ 4. 重置密码
执行以下命令（把 `newpassword` 换成你想设的新密码）：

```sql
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
```

如果报错，改用这句：

```sql
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword');
```

✅ 5. 退出并重启 MariaDB

</textarea>
<h2>打开外部连接</h2>
<textarea name="" id="" cols="30" rows="10">
    要让 MySQL（或 MariaDB）“打开外部连接”，必须完成 3 个核心步骤，否则默认只能本机登录。下面按 Termux 环境 给你一份最小可落地的清单，做完即可用手机里的数据库接受局域网/公网访问。

---

✅ 一、改配置：让 MariaDB 监听所有网卡

2. 编辑配置文件（Termux 里没有 `/etc`，路径在 `$PREFIX/etc/mysql/my.cnf`）

```bash
   nano $PREFIX/etc/mysql/my.cnf
   ```

   找到 `[mysqld]` 段，添加或修改两行：

```
   bind-address  = 0.0.0.0
   skip-networking  = 0
   ```

✅ 二、建用户：给外部 IP 授权
1. 本机免密登录

```bash
   mysql -u root
   ```

2. 创建外部账号（示例用户 `remote` 密码 `12345`）

```sql
   CREATE USER 'remote'@'%' IDENTIFIED BY '12345';
   GRANT ALL PRIVILEGES ON *.* TO 'remote'@'%';
   FLUSH PRIVILEGES;
   ```

   如果只想让同网段能连，可把 `%` 换成 `'192.168.1.%'` 这种形式。

---

✅ 三、放通防火墙（Termux 自带 `ufw` 没有，用 `iptables` 即可）
1. 查看当前规则

```bash
   iptables -L | grep 3306
   ```

2. 如未放行，执行（IPv4 局域网示例）

```bash
   iptables -I INPUT -p tcp --dport 3306 -s 192.168.0.0/16 -j ACCEPT
   ```

   需要公网就把 `-s` 段去掉，或写自己的公网 IP。

---

✅ 四、验证外部连接
1. 在电脑 / 另一台手机装客户端

```bash
   mysql -h <手机局域网IP> -P 3306 -u remote -p
   ```

2. 能出现 `MariaDB [(none)]>` 即成功。

---

⚠️ 安全提醒
- 生产环境不要把 `bind-address` 写 `0.0.0.0` 后又给 `%` 授 ALL 权限；
- 若跨网段，建议用 cpolar / frp 做 TLS 隧道，而不是直接把 3306 暴露到公网。

</textarea>
</body>
</html>